{{- if gt .Paginator.TotalPages 1 -}}
  <ul class="pagination">
    {{- .Scratch.Set "paginator.ellipsed" false -}}
    {{- range $.Paginator.Pagers -}}
      {{- $right := sub .TotalPages .PageNumber -}}
      {{- $showNumber := or (le .PageNumber 1) (eq $right 0) -}}
      {{- $showNumber := or $showNumber (and (gt .PageNumber (sub $.Paginator.PageNumber 3)) (lt .PageNumber (add $.Paginator.PageNumber 3))) -}}
      {{- if $showNumber -}}
        {{- $.Scratch.Set "paginator.ellipsed" false -}}
        {{- $.Scratch.Set "paginator.shouldEllipse" false -}}
      {{- else -}}
        {{- $.Scratch.Set "paginator.shouldEllipse" (not ($.Scratch.Get "paginator.ellipsed") ) -}}
        {{- $.Scratch.Set "paginator.ellipsed" true -}}
      {{- end -}}
      {{- if $showNumber -}}
        <li class="page-item{{ if eq . $.Paginator }} active{{ end }}">
          <span class="page-link">
            <a href="{{ .URL }}">{{ .PageNumber }}</a>
          </span>
        </li>
      {{- else if ($.Scratch.Get "paginator.shouldEllipse") -}}
        <li class="page-item">
          <span class="page-link" aria-hidden="true">&hellip;</span>
        </li>
      {{- end -}}
    {{- end -}}
  </ul>
{{- end -}}
